1. Technical Field
The present invention relates generally to computer systems and more specifically to computer networks. Still more particularly, the present invention relates to a method, system, and program product for controlling transmission of information across a computer network.
2. Description of the Related Art
The Internet has become the fastest growing and largest network in the world. As the premier communication network, the proliferation of information across the internet is increasing at a very rapid pace. The specific use of the Internet is also expanding, moving from providing traditional static content to now providing more dynamic content, such as audio and video streams.
Those skilled in the art are familiar with the Internet and the method by which the Internet operates. For example, it is well know that the Internet comprises multiple servers, each having specific content that is provided to remote clients who access the server via a universal resource locator (URL) or web address as it is commonly called. The clients typically access and display the content of the web site (web pages identified by the URL) via a web browser (or browser, for short).
The web site content is typically web pages created with the conventional hypertext markup language (HTML) documents or more recently extensible markup language (XML) documents. These web pages are transmitted to the requesting client via the hypertext transfer protocol (HTTP). HTTP operates with HTML as payload and also supports the inclusion within the HTML document of meta tags, etc. HTTP, XML, and HTML, etc. as well as general descriptions of the Internet may be found at world wide web site (www) “w3.org”.
Presently, there are many web servers (web sites) that accept specific HTTP requests (i.e., from a client via a browser) and responds by sending back to the client web pages that are continuously updated. Accessing WWW from clients (browsers) works based on a request-response architecture enforced by HTTP, and some requests result in prolonged continual responses from the web server, like self-refreshing pages, audio/video streaming etc. Example web sites that provide this type of continuously updated web pages include web sites serving live sports action, websites streaming audio and/or video content, websites providing news updates, and web sites with changing financial content (such as the United States stock market website), etc. In each case, a client typically sends out a single initial request for access to the content and the server responds by continually providing multiple different (ever changing) pages/data until the client closes the web browser or browses away from the web site.
The server operates as an unintelligent information source that responds to a client request by continually sending the web pages or streaming content to the network address that identifies the particular client/browser. The server does not have any information on whether the client (or user of the client) is actually utilizing the data that is being sent to the client. In fact, but for some timeout mechanism with some web sites (particularly those with secure information/data), the server may continue to send the web pages to the client system indefinitely.
For example, if a user has requested the live scores of a basketball match, the server keeps sending the updated scores at the regular intervals as long as the client (browser) is up (i.e., executing on the processor of the client) and the user has not used the browser to request another web page of some other server. In fact, one trick known to many users of client browsers is that of selecting the file menu option to open a new browser, and browsing away from the first server to a second server on the second open browser. The original browser remains open in the background and the first server content continues to be received but is not utilized.
Also, conventional operating systems (OS) allow the user to minimize the browser application and/or open up any other application on the client system. When this occurs with current browsers, the server continues to send the content to the client even though the user is not actually using/viewing the content.
Many servers have a finite limit on the number of clients that can be supported at one time. With bandwidth issues a real concern for most networks, including the networks of the various Internet providers, having the server continue to stream high bandwidth content to a client whose browser is minimized or hidden behind a second browser or second application window is a waste of bandwidth and causes an unnecessary drain on server/network resources.
The present invention thus recognizes that it would be desirable to be able to be able to detect when a client browser or user is not using the continuously updated web pages provided by a server. A method and system that enables a throttling of streaming content to a client when the client/content is not being actively utilized would be a welcomed improvement. It would be further desirable if there was some mechanism by which a server is alerted when to suspend or throttle sending continuous updates to a client browser based on a current usage attribute of the client browser. These and other benefits are provided by the invention described herein.